perm filename NET.JAM[UP,DOC]10 blob
sn#211638 filedate 1976-04-16 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00019 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00003 00002 DIAL PROGRAM:
C00005 00003 PTYJOB PROGRAM:
C00006 00004 TELNET PROGRAM:
C00009 00005 TABLE OF HOST MNEMONICS
C00012 00006 First, some network definitions are in order.
C00016 00007 More definitions
C00018 00008 How to Use the TELNET
C00022 00009 CAN'T CHANGE SOCKETS
C00025 00010 Now that you know all of the things that go wrong, let us
C00029 00011 αβE
C00033 00012 βF
C00035 00013 IMP System Calls
C00039 00014 If HDEAD comes up, this means that the last message we sent
C00043 00015 Special MTAPE UUOs
C00047 00016 function=2 Status
C00050 00017 function=7 Get socket numbers and host number
C00053 00018 function=13 Set allocation
C00057 00019 system default values are 6 sec for CLS, 40 sec for RFNM, no timeout
C00059 ENDMK
C⊗;
DIAL PROGRAM:
DIAL is a modified user TELNET program which uses a teletype
connection instead of an IMP. The purpose is to allow calling up
other computers through their dataphones. This is accomplished by
initing a dataset here and dialing it. Either manually, or by using
the automatic phone dialer on TTY11.
The following is the syntax for the monitor DIAL command:
DIAL <sixbit TTY name> <cr>
or
DIAL {"("<3 digit area code>")"}<3 digit prefix> {"-"} <4 digit number> <cr>
If there is an error in your arguments, DIAL will type "Error
in TTY name or phone number" and prompt you for the name or number
again. If you give a TTY name, the TTY is just inited. You must go
dial the dataphone yourself. Be sure you have successfully inited the
TTY associated with the dataphone before you dial it. If you give a
phone number, TTY11 is inited and the number dialed on the automatic
phone dialer. For any further information on operation consult
R. Helliwell.
Examples of DIAL command:
DIAL TTY10 Inits TTY10, you must dial.
DIAL 493-5505 Inits TTY11 and dials the number
shown which is TTY10.
PTYJOB PROGRAM:
The PTYJOB program is similar to the DIAL program, except
that it gets a PTY instead of a TTY (dataphone). It is also able to
keep the local/remote echoing states consistent.
TELNET PROGRAM:
The Stanford interface to the ARPA network consists of a
general purpose piece of software in the time-sharing monitor, and a
set of user-level programs. The principal program used is T ,
often refered to as our user-TELNET program. This program provides
the user with the ability to connect to a serving host as if he were
typing on a local teletype.
Some important differences exist between using the TELNET and
a local terminal. One obvious problem is that certain characters are
absorbed by Stanford's time-sharing system before they get to the
TELNET, (like control-C, control-Z, etc.), thus necessitating some
character mapping and some escape conventions. The way it works is as
follows. To type some control character, one types
<CONTROL><character> and the TELNET will translate the character and
send it out. <META><character> and <CONTROL><META><character> are
special commands to the TELNET for switching modes and are described
below.
When the TELNET is started up by typing "R T", it first
asks you for the site of the computer you wish to connect to. The
sites on the network have mnemonic names, assigned somewhat
arbitrarily, and may be recognized by either their long name or their
short name, or just enough characters to make the name unique. A list
of the current mnemonics and their decimal site numbers are given
below:
TABLE OF HOST MNEMONICS
This list is rather out of date. For a complete list see NAMES[NET,SYS]
LONG NAME SHORT SITE COMMENTS
UCLA-NMC NMC 1 Network Measurement Center.
Sigma-7, very crowded.
UCLA-CCN CCN 65 Campus computation center.
360-91, remote job entry only.
SRI-ARC NIC 2 Englebart's group.
Allows network users NLS only.
SRI-AI SRAI 66 SRI Artificial Intelligence group
UCSB UCSB 3 Offers On-Line-System only.
Desk calculator service.
UTAH UTAH 4 They use TENEX. Also are core-bound.
BBN-NCC NCC 5
BBN BBN 69 This is where TENEX came from.
BBN-B BBNB 133 BBN's other PDP-10.
MIT-MLTX MLTX 6 World's slowest system.
MIT-DMCG DMCG 70 Dynamic modeling group.
Down the hall from AI.
MIT-AI AI 134 Exec DDT, No password needed.
MIT-MATHLAB ML 198 Exec DDT, No password needed.
RAND-65 RAND 7
RAND-10 RND1 71 TENEX, supposedly a service center.
SDC SDC 8
HARV-10 HARV 9
HARV-1 HRV1 73
HARV-11 HRV2 137
LL-67 LL67 10
LL-TX2 TX2 74
LL-TSP TSP 138
SU-AI SAIL 11 Modified DEC system, no password needed,
very busy.
SU-HP SUHP 75
ILL-11 ILL11 12
ILL-B65 ILL 76
CASE CASE 13
CMU CMU 14 DEC 10-50 system.
BURROUGHS BURR 15
PAOLI PAOLI 79
AMES-67 AMES 16
AMES-TIP AMET 144
MITR-TIP MTRT 145
RADC RADC 18
RADC-TIP RADT 146
NBS NBS 19
NBS-TIP NBST 147
ETAC-TIP ETAT 148
TINKER OCAF 21
MCLELLAN SMAF 22
USC USC 23
USC-TIP USCT 151
GWC-TIP GWCT 152
NCAR NCAR 25
NCAR-TIP NCAT 153
BBN-TIP BBNT 158
First, some network definitions are in order.
NCP
This is the software in the monitor that services the IMP.
TELNET
The thing you type into that sends your characters off to a
foreign site is a user TELNET program. The thing that receives them
at the other end and passes them on to the time-sharing monitor there
is the server TELNET. These are generally user-level programs
SOCKET
When you log in on another system, unknown to you, there are
four socket numbers involved. There is a local send socket number, a
local receive socket number, a foreign send socket number, and a
foreign receive socket numbers. These numbers are internal connection
indexes and are used to keep different connections separate. Each
connection has a unique set of 4 socket numbers.
LOGGER
Each site is supposed to provide a program that does nothing
but sit around and listen to socket 1. When someone connects to
socket 1, the LOGGER is supposed to send it back a socket number that
the foreign host can use to connect to the LOGGER's host on. Only the
serving host knows what socket numbers it can service and it is the
job of the LOGGER to pass out these numbers.
RFC
Request for connection. This is how a pair of hosts establish
a connection. The originating host sends an RFC to the destination
host with a local socket number and a foreign socket number as
arguments. The destination host can complete the connection by
returning an RFC with the same socket numbers, or can refuse the
connection by returning a close code.
LINK
Once a connection is established, an 8-bit link number is
assigned such that the 8-bit host number concatenated with the 8-bit
link number is unique at both ends of the connection. During the
lifetime of the connection, the link number is used to separate the
connections, being as how the socket numbers are 32-bits long. The
IMP itself is programmed in such a way that only one message may be
in transit on a particular link at a time. The IMP signals the
sending host that the message has arrived by returning a RFNM
(request for new message) with that link number as an argument. All
of this is invisible to the user.
More definitions
CONTROL MESSAGES
Data is sent between hosts on a non-zero link number. Link
zero is defined as the control link, on which hosts communicate
regarding the connections. All host to host protocol messages are
exchanged on link zero.
ALLOCATION
The host to host protocol defines a kind of flow control on a
higher level than the RFNM control. This is the allocation system.
When a connection is first established, the receiving host sends a
control message telling the sending host how many bits and messages
can conveniently be buffered. The sending host must then not send
more than that many bits or messages without waiting for more
allocation from the receiving host. Although much of this is unseen
to the user, the user has control over how much allocation the system
will give the remote host. For data and file transfer purposes, it is
convenient to increase the allocation over the system default amount.
How to Use the TELNET
Our user TELNET program is called TELNET. When it is started,
it first asks for a site to connect to. You may then type enough
characters as needed to recognize the site name. The TELNET will then
attempt to connect to the site. It types out its progress as it goes.
When the connection is completed, the message "Connection
Established" is typed out. All hosts have an initial connection
message which should appear next.
It can type out many things other than the success statement,
so let me describe the error typeouts next:
CONNECTION HAS BEEN CLOSED
This means just what it says. The host has voluntarily broken
the connection for reasons known only to himself.
RESET RECEIVED FROM HOST
The host has sent us a reset command which directs our NCP to
break all connections to this host and clear our tables of everything
it knows (regarding previous connections) about this host. Some sites
(namely CMU and Harvard) will send a reset the first time you connect
to them as standard procedure. In this case, trying again will
succeed. In the more normal case, this means the host has crashed and
just been brought up again.
HOST DEAD
This means that the RFC got to the host's IMP, but was not
read from the IMP within 90 seconds, and the IMP timed out. This
generally means the host is really down. When this happens, the NCP
remebers that the host in question was down so that it does not have
to wait for the 90 second timeout. In this case a connection is not
even attempted. If you want the system to attempt the connection even
though it thinks the host is dead, end the host name with altmode
instead of carraige return.
DATA QUOTA OVERFLOW
The host is not conforming to protocol and has sent us more
data than we allocated him. We are breaking the connection.
END OF FILE
Doesn't occur in normal circumstances.
SOCKET IN USE
Generally happens after an aborted attempt to connect to
someone else. This means the foreign host suddenly sprang to life
after the TELNET timed out and sent us an RFC from a different socket
than he told us he has now. This cures itself in a few minutes.
CAN'T CHANGE SOCKETS
SYSTEM ERROR
NO LINKS AVAILABLE
ILLEGAL BYTE SIZE
These all indicate horrible system errors of one form or
another and should not happen.
IMP DEAD
The interface has begun to malfunction, the network control
center has brought the IMP down, or someone here has given the magic
UUO that brings the IMP software down.
HOST NOT RESPONDING
One of the various timeouts inside the TELNET or system went
off. The TELNET times out generally when a message is sent to the
foreign host which demands a response and no response was received
within a "reasonable" time.
The following messages appear only in conjunction with one of
the above messages and indicates only the point in TELNET where the
error occurred.
CAN'T CONNECT TO LOGGER
The error occurred on the initial RFC to get the foreign
host's logger.
DIDN'T GET SOCKET NUMBER FROM LOGGER
We exchanged RFC's with the foreign host's logger, but
somehow he did not send us a socket number.
CAN'T CONNECT TO RECEIVE SIDE
We got a socket number from the logger and tried to open a
connection on that socket when the error occurred.
CAN'T CONNECT TO SEND SIDE
We got the socket number and successfully sent an RFC to the
receive socket, but we hit an error when trying to send an RFC to the
send socket.
ERROR WHILE WAITING FOR RECEIVE SIDE
This means that we successfully sent RFC's to the send and
receive sockets, but we got an error while waiting for the return RFC
on the receive side.
ERROR ON OUTPUT
ERROR ON INPUT
These are given after the connection is established and refer
to errors that occurred while doing output or input.
Now that you know all of the things that go wrong, let us
proceed to the options available once the connection is successfully
established. Normally, everything you type will be sent directly to
the foreign host. The TELNET's idle state is in interrupt wait queue
(INTW). An abnormal state might be if it hung in IO wait queue (IOW).
Characters typed with <CONTROL> held down are interpreted as
control characters, that is, they are made into upper case, then 100
is subtracted from the character code, then they are sent. So to type
↑C at a remote job, you need only type <CONTROL>C. The effect of the
<CONTROL> and <META> keys may be simulated on a teletype by using ↑E.
One ↑E means <CONTROL>, two ↑Es means <META>, and three ↑Es means
<CONTROL><META>. Characters with <META> or <CONTROL><META> are not
sent to the foreign host but are interpreted locally by the TELNET as
instructions to the TELNET. I shall abbreviate <META> as β and
<CONTROL><META> as αβ. ⊗ will be used if either β or αβ will work.
CONTROL COMMANDS TO THE TELNET
⊗<number>
An octal argument is assembled from digits typed this way.
<octal arg>⊗S
Sends the octal argument as a single ASCII character. For
instance, ⊗1⊗0⊗1⊗S is the hard way to send an "A".
⊗S (no arg)
Send. If the TELNET is in line mode, this command causes all
the characters typed so far to be sent to the foreign host. Normally,
the characters are sent only when CR, LF, ALT-MODE, or control
character are typed when in line mode. This command is not useful
for teletypes, because typing ↑E↑ES does not cause an activation in
line mode.
βL
Enter line mode.
αβL
Enter full character set mode. In this mode, each character
is an activation character, and is sent individually to the foreign
host when it is typed. This is useful for using DDT at a remote host.
βE
Begin local echoing. Also attempts to turn off remote
echoing. Different sites have different echoing conventions. Some
sites expect to send back echoing, some do not. If you find that what
you type is not being echoed in a reasonable time, you may use this
command to let you see what you are typing. In the DIAL program, this
makes you look like a half duplex terminal. It also does not change
the state of remote echoing.
αβE
Terminate local echoing. Also attempts to turn on remote
echoing. One does this when each key one types appears twice on the
console. Turning off local echoing will often eliminate one copy of
the key. The DIAL program does not attempt to change the state of
remote echoing.
βO
Turn on console typeout. See αβO.
αβO
Turn off console typeout. Useful when output is already going
to a file and you don't want to waste the time it takes to type out
on your console as well.
βK
Inhibit duplexing LF after CR. The system normally types a LF
out when you type CR. This command inhibits that. This command is
different in effect from the other two, because it alters only what
appears on your screen, not what goes out over the line.
αβK
Enable duplexing LF after CR. The inverse of the above
command.
⊗X
Set escape character. The escape character is normally set to
↑E but may be changed by this command. The next character typed is
taken to be the new escape character. This is useful for teletypes
only.
βI
Open input file. This command asks for a file name, then
proceeds to send said file to the foreign host.
αβI
Close input file.
βD
Open output file. This command asks for a file name, then
proceeds to write everything that comes from the foreign host on this
file. Note that characters you type, or characters from any input
file that is opened, do not go into the output file unless the
foreign host is duplexing them.
αβD
Close output file.
⊗Q
Quit. Terminates connection and closes any input or output
files that may be open. The connection is also closed by saying ↑C to
the TELNET and doing something else, but in this case, the input and
output files are not closed.
βF
Extend the last output file. Asks for new file name if there
has not been any output yet.
αβF Extend output file. Always asks for a name.
⊗<FORM>
Puts form-feed in output file if one is open.
In TELNET:
⊗C
Send interrupt. This is the network protocol for "return to
monitor" or equivalent.
In DIAL:
βC
Turn on control character mode. In this mode all characters
recieved from the dataphone are typed on your console.
αβC
Turn off control character mode. In this mode, octal codes
1-10, 16-37, and 177 are flushed when recieved from dataphone (not
typed on your console).
In PTYJOB:
⊗Z
Quotes next character, including its control bits.
βM
Enter transparent mode. Sends all characters as if they were
quoted with ⊗Z except for αβM and ⊗Z.
αβM
Leave transparent mode.
IMP System Calls
The IMP is similar to any other IO device, in that it may be
COMMENT ⊗ VALID 00019 PAGES
initialized with an INIT and released with a RELEASE, but it is
different in that one must first open a connection before one may
expect to exchange data. Connections are opened and closed separately
for the receive side and the send side, even though the IO channel
number is the same. One may open and close connections liberally
without having to do any more than the first INIT. To get all the
various special functions, the user does an MTAPE UUO with the
effective address pointing to a variable length table whose first
word is a code number. This number determines the function of the
UUO. These functions are as follows.
The status of the connection is contained in several places.
The actual connection status is in a status word, one for each
connection. If you have both a receive and a send connection, then
you will have two connections. MTAPE 2 gives you these status words.
The bits are decoded as follows:
Name ---- Bit ----------- Explanation
RFCS 200000 LH RFC sent.
RFCR 100000 LH RFC received.
CLSS 040000 LH Close sent
CLSR 020000 LH Close received
INTINR 000100 LH Interrupt by receiver
INTINS 000040 LH Interrupt by sender
Other bits may be on, but they are internal to the system.
The normal state of an open connection is 300000 in the left half.
When a connection is closed or closing, CLSS or CLSR will be on. No
more data may be transmitted or received over the connection at this
point. The foreign host may send us interrupts. He can send an
interrupt from receiver or an interrupt from sender. These can be
received as user interrupts or can be tested for explicitly by MTAPE
12. Interrupts can be sent using MTAPE 9.
More status bits occur in the IO status word, which can be
gotten with a GETSTS UUO, or examined with a STATZ or STATO UUO, or
cleared with a SETSTS UUO. These bits are as follows:
Name ---- Bit ------------- Explanation
HDEAD 002000 RH Host or destination IMP dead
CTROV 001000 RH Foreign host sent us more bits than
he had allocated.
RSET 000400 RH Foreign host sent us a reset.
TMO 000200 RH Timeout occurred.
If HDEAD comes up, this means that the last message we sent
him stayed in the IMP network for 30 seconds or more without being
eaten by the host. In this case, the IMP flushes the message and
sends us back a "host dead" message.
CTROV means that the foreign host goofed. He sent us more
data than we allowed him. The system closes the connection in this
case.
RSET means that the host sent us a reset, which as mentioned
before, asks us to clear all our tables of references to this host.
The connection is closed.
TMO means that your job was in a wait state and timed out
(see MTAPE 15). This bit is set when a timeout occurs.
User interrupts can be taken on a number of conditions. These
are described below.
Name --- Bit -------------- Explanation ---------------------------
INTINR 000100 LH Interrupt from foreign receive side
INTINS 000040 LH Interrupt from foreign send side
INTINP 000010 LH New data packet entered free storage. Next
INPUT UUO will not wait.
INTIMS 000020 LH Status change. One or more of the bits CLSS
CLSR, RFCS, RFCR has changed.
The INTINP interrupt is generated every time a regular data
message is received by the system. One can test for data received and
waiting in the system with an MTAPE 8 UUO.
Now on to the MTAPEs themselves. In this description, the
function code is given and named, and the contents of the first
through Nth words of the MTAPE block are given. A brief explanation
follows if needed.
Various of these UUOs may go into a wait state. They will be
awakened either because of their normal wakeup condition, or some
special condition. Some of the special conditions that may occur are
specified by the bits in the right half of the IO status word. If one
is waiting for input, for instance, and a reset arrives, the job is
awakened and RSET is set. An error bit is set if the wakeup was due
to a special condition, so the normal IN and OUT UUOs will not skip
if the wakeup was due to the normal wakeup condition.
Special MTAPE UUOs
function=0 Connect
1 Status bits are placed here upon return
2 Local socket number, 32 bits, right adjusted
3 Wait flag. -1 for wait for connection.
4 Byte size, or if sending, byte size is stored here
5 Foreign socket number
6 Host number is placed here, 8 bits, right adjusted
An RFC is sent to the host whose number is in word 6 with the
local socket number taken from word 2 and the foreign socket number
taken from word 5. If word 3 is non-zero, the systen goes into RFC
wait until timed out (see MTAPE 15) or until an RFC with matching
socket numbers and host number arrives. If an RFC is already pending
when this UUO is given, it will not wait, but will complete the
connection immediately. If you wish to open a receive connection, the
local socket number must be even and the foreign socket number must
be odd.
If the wait flag (word 3) was on or an RFC was pending, and
the local socket number was odd (Send side), the byte size is stored
in word 4.
If you are opening a receive connection, you may specify the
byte size of the connection. Our system allows byte sizes of 1, 2, 3,
4, 6, 8, 9, 12, 16, 18, 32, and 36 bits. Most other systems allow
only 8, 32, and 36 bits. The standard TELNET connection is 8 bits
with the right hand 7 bits of each byte being an ASCII character
unless the high order bit is on, in which case the character is a
command to the receiving TELNET. Notice that to change the byte size
in your buffer header, all you have to do is place the byte size in
bits 6 through 11 in the byte pointer word in the buffer header. A
byte size is established for the life of a connection and may not be
changed until the connection is broken.
function=1 Listen
1 Status bits are placed here
2 Local socket number
3 Wait flag
4 Byte size of connection. Stored here if send
This does not send out an RFC to anybody, but merely places
the local socket number in word 2 in the system link table. If word 3
is non-zero, the job is put into RFC wait. If an RFC arrives from a
foreign host with that socket number as the local socket number, a
connection is made. If the wait flag (word 3) was on or an RFC was
already waiting, and the local socket number was odd (send side), the
byte size is stored in word 4 when an RFC is received.
function=2 Status
1 Status bits are placed here for send side
2 Receive side status bits are placed here
If the connection is not open, zero is stored. If a reset has
been received, both CLSS and CLSR will be on.
function=3 Terminate
1 Status bits are placed here
2 Local socket number
3 Wait flag
This sends a close to the foreign host for the socket
specified in word 2. If word 3 is non-zero, the job is placed in CLS
wait until a return close is received, or the CLS timeout occurs
(signified by TMO being on in IO status word).
function=4 Wait for connection complete
1 Status is returned here
2 Needs socket number here
This is meaningful only if a CONNECT or LISTEN was given
without waiting (word 3 = 0). In this case, the job is put into RFC
wait until an RFC arrives or a timeout occurs.
function=5 Dump. Dumps monitor tables
1 Number of words of tables desired
2 Address of place to put tables
This dumps the monitor tables into your core image. The
format of these tables is much too lengthy to be discussed here, but
is sort of described in IMPDDB[S,SYS] pages 6 and 7. The part that is
dumped is after the label SYSTBS.
function=6 Wakeup. Valid only if at I-level. Useful for
waking up process in wait state due to IMP.
This UUO will wake up the main job if it is in any wait state
due to the IMP. It also sets TMO in the IO status bits.
function=7 Get socket numbers and host number
1 host-link number, send side
2 Local send socket
3 Foreign receive socket
4 Host-link number for receive side
5 Local receive socket
6 Foreign send socket
A host-link number is a 16 bit right adjusted quantity. The
first 8 bits are the host number and the last 8 bits are the link
number.
function=8 Skip if any input is present
This skips if there is input in free storage that has not
been transferred to the user's buffers.
function=9 Send interrupt
1 Status bits returned here
2 Need socket number here
Sends a receive side interrupt if the socket number is even
and a send side interrupt if the socket number is odd.
function=10 Resurrect IMP if down
This is a privileged UUO and is applicable only if the IMP
system is down.
function=11 Bless this host
1 Host number required here
If a destination IMP returns a host dead message, a bit is
set in the system and no further transfers are permitted to that
host. This UUO clears that bit and sends a null message to the host
to see if he is still dead.
function=12 Test and clear interrupt bits
1 Send side. 0 for no int., -1 for int. present
2 Receive side. 0 for no int., -1 for int. present
This UUO is useful if you have many IMP connections open.
When an interrupt occurs (INTINS, INTINR), the bit is set in the
status word for that connection, and one may determine which
connection generated the interrupt by use of this UUO.
function=13 Set allocation
1 Function code. 0 for as specified, 1 for sys max,
2 for min, and 3 for system default values.
2 Number of bits of allocation (for type = 0)
3 Number of messges of allocation (for type = 0)
This changes the allocation we have given the foreign host.
If this UUO is not given, the system default value is used, which is
fairly small. The system maximum is 1024 words, and the system
minimum is 2 words. The default value is about 50 words. We allocate
in two dimensions. We allocate both the number of bits and the number
of messages he may send. Since free storage blocks are about 50 words
long, the system maximum number of messages is 1024/50. If the
function code (word 1) is zero, the new allocation is taken from
words 2 and 3, is clipped to fit within the system maximum and
minimum, and set accordingly. Notice that if the connection is not
yet open, this does not actually cause the allocation to happen, just
sets the values that will be given. Allocation does not actually
occur until the first IN (INPUT) UUO is given, or a MTAPE 8 is given.
DO NOT EXPECT ANY INPUT OR INPUT INTERRUPT UNTIL ONE OF THESE UUOs IS
GIVEN! If we do not allocate him anything, nothing will happen!
function=14 What are the allocations
1 Number of bits we have allocated him
2 Number of messages we have allocated him
3 Number of bits he has left
4 Number of messages he has left
5 Number of bits in free storage
6 Number of messages in free storage
7 Number of bits he has allocated us
10 Number of messages he has allocated us
function=15 Set timeouts
1 Word of 6-bit bytes. Gives number of 2-second units
for timeouts on CLS, RFNM, ALL, RFC, or INP
0 means wait indefinitely
The system enters wait states for at least five different
reasons. In each of these cases, a timeout may be set. This UUO takes
in word 1 five timeouts in 6-bit fields, CLS being bits 0-5, RFNM
6-11, ALL 12-17, RFC 18-23, and INP 24-29. Bits 30-35 are not
currently used. When one of these timeouts occurs, error bits are not
set except for RFNM, ALL, and INP. For RFC and CLS, the UUO in
progress just goes on as if it had never tried to wait. Note that we
can go into CLS wait inside a CONNECT or LISTEN if the local socket
has a half-closed connection associated with it. For this reason, it
is always good to wait at least a few seconds for the return CLS. The
system default values are 6 sec for CLS, 40 sec for RFNM, no timeout
for ALL, RFC, and INP.
function=16 Get timeouts
1 Current timeout word will be placed here
In any operation which expects the status word to be returned
in word 1 (CONNECT, LISTEN, etc), an error code may be returned
instead in the rightmost 6-bits. These errors are as follows:
Name - Code ------------ Explanation ---------------------------
siu 1 Socket in use. This means there is a connection on
that local socket number already.
ccs 2 Can't change socket numbers. This means a foreign
socket number has already been set and an RFC
received for this local socket number, and you
can't change the socket number because the foreign
host already knows what it is.
sys 3 Horrible system error. Can't happen.
nla 4 No link available. System IMP capacity exceeded.
ilb 5 Illegal byte size.
idd 6 IMP dead.
This completes the discussion of the monitor IMP calls